Repository navigation
Conversation
This fixes a dangling address in getOrMakeBranch for an existing branch and adds a unit test. - For an existing branch, the helper set the address of its own by-value parameter, which is gone when the caller fills the branch. - An object is now set with SetObject, which keeps the address in the branch; a pointer to the object is set with SetAddress as before. - The TPC digit writers rely on this when a sector is flushed more than once; the other callers set the address again themselves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This fixes stale chunked digit files when the number of TPC lanes changes and lets the multithreaded device accept --tpc-sector-seeding. - The chunked digit merger reads every lane file in the directory, but each lane removed only its own file. After a run with more lanes or threads, the extra lane files stayed and their sectors were published twice. - The first lane now also removes the files of lanes the run does not have; the multithreaded device removes all of them, as before. - The file name and the cleanup are shared by both devices. - --tpc-sector-seeding is now a common option; the multithreaded device always seeds per sector, so it accepts the option without effect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This moves code that the lane and the multithreaded TPC digitizer devices duplicated into TPCSectorDigitization. - LaneDigitFileWriter writes the flushes of a sector to the chunked digit file of a lane, for both devices. - sectorSeedingBaseSeed() selects the base seed of the per-sector seeding, on which equal digits of both devices rely. - TPCDigitizerConditions::update() returns the drift velocity change instead of calling back; finaliseCCDB() returns nothing. - The multithreaded device takes its sectors from the spec instead of the input headers. - Dead helpers and unused includes are removed from the lane device. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…B lock This replaces the process-wide lock around the CDBInterface reads of the TPC digitizer by a calibration snapshot that one thread reads per timeframe. - DigitizerCalibrations holds the gain, pedestal, noise, threshold, per-pad ion tail and common mode maps, a copy of the dead channel map and the CMC flag. - TPCDigitizerConditions::update() reads it once per timeframe, after the other conditions; both devices pass it to their digitizers, which only read it. - Digitizer::init() no longer reads the CDBInterface or takes a lock; a digitizer used on its own reads a snapshot itself. - The dead channel map is copied once per timeframe instead of once per sector. - The one-time settings report moved into the snapshot read, so no worker thread reads the CDBInterface. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sawenzel
requested review from
davidrohr,
shahor02 and
wiechula
as code owners
November 13, 2026 13:13
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
getOrMakeBranchby usingSetObjectfor an existing object branch instead of the address of a by-value parameter; adds a unit test.--tpc-sector-seedingin the multithreaded device.The digits do not change: lanes are identical to the 2026-11-12 daily, MT to seeded lanes.
Assisted by Claude Code.